package com.nostop.util;

import java.util.Date;
import java.util.Random;

public class PasswordUtil {

    public final static String[] word = {
            //这里不用容易起歧义的 比如i和大写的I、还有1很类似就不用了
            "a", "b", "c", "d", "e", "f", "g",
            "h", "j", "k", "m", "n",
            "p", "q", "r", "s", "t",
            "u", "v", "w", "x", "y", "z",
            "A", "B", "C", "D", "E", "F", "G",
            "H", "J", "K", "M", "N",
            "P", "Q", "R", "S", "T",
            "U", "V", "W", "X", "Y", "Z"
    };
    public final static String[] num = {
            "2", "3", "4", "5", "6", "7", "8", "9"
    };

    public static String randomPassword() {
        StringBuffer stringBuffer = new StringBuffer();
        //取当前时间的随机数，是为了减小密码的相同的概率
        Random random = new Random(new Date().getTime());
        //真：密码为字符串，假：密码为数字
        boolean flag = false;
        //默认密码长度是8到11位之间
        int length = random.nextInt(3) + 8;
        for (int i=0;i<length;i++) {
            if (flag) {
                stringBuffer.append(num[random.nextInt(num.length)]);
            }else {
                stringBuffer.append(word[random.nextInt(word.length)]);
            }
            //让字符串和数字交替的效果
            flag = !flag;
        }
        return stringBuffer.toString();
    }

    public static void main(String[] args) throws Exception{
        System.out.println(randomPassword());
        Thread.sleep(1000);
        System.out.println(randomPassword());
        Thread.sleep(1000);
        System.out.println(randomPassword());
        Thread.sleep(1000);
    }



}
